#import <UIKit/UIKit.h>

@protocol HistorySearchTagViewDelegate <NSObject>

@optional
/**
 * 点击标签回调
 * @param tagName 标签名称
 */
- (void)didSelectTag:(NSString *)tagName;

/**
 * 删除标签回调
 * @param tagName 标签名称
 * @param newTags 删除后的新标签数组
 */
- (void)didDeleteTag:(NSString *)tagName newTags:(NSArray<NSString *> *)newTags;

/**
 * 清空所有标签回调
 */
- (void)didClearAllTags;

@end

@interface HistorySearchTagView : UIView

@property (nonatomic, weak) id<HistorySearchTagViewDelegate> delegate;

/**
 * 初始化方法
 * @param frame 视图大小
 * @param maxCount 最大显示标签数量
 */
- (instancetype)initWithFrame:(CGRect)frame maxTagCount:(NSInteger)maxCount;

/**
 * 设置标签数据
 * @param tags 标签数组
 */
- (void)setTags:(NSArray<NSString *> *)tags;

/**
 * 添加单个标签
 * @param tag 标签名称
 */
- (void)addTag:(NSString *)tag;

/**
 * 删除单个标签
 * @param tag 标签名称
 */
- (void)deleteTag:(NSString *)tag;

/**
 * 清空所有标签
 */
- (void)clearAllTags;

/**
 * 更新编辑状态
 * @param isEditing 是否编辑状态
 */
- (void)updateEditingState:(BOOL)isEditing;

/**
 * 获取当前所有标签
 */
- (NSArray<NSString *> *)getAllTags;

@end    
